import axios from 'axios';
import {notification} from 'ant-design-vue';

export function createService({baseURL, headers}) {
  const instance = axios.create({
    baseURL,
    timeout: 10000,
    headers
  });
  instance.baseURL = baseURL
  instance.headers = headers
  // 添加请求拦截器
  instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

  // 添加响应拦截器
  instance.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    if (!response.data.success) {
      notification.warn({
        message: '操作失败',
        description: response.data.message,
      });
      // Promise.reject(error);
      throw new Error(response.data)
    }
    return response.data && response.data.result || null;
  }, function (error) {
    notification.warn({
      message: error.response
        && error.response.data
        && error.response.data.message
      || error.message || JSON.stringify(error),
    });
    return Promise.reject(error);
  });
  return instance;
}